#ifndef __GAME_CONTROLLER_ISCENE_HPP__
#define __GAME_CONTROLLER_ISCENE_HPP__

#include "game_model\ih\game_model_iobject.hpp"

#include <set>

namespace GameController {

struct IScene
{
	typedef std::set< GameModel::IObject::Ptr > ObjectsContainer;
	typedef ObjectsContainer::iterator ObjectsIterator;
	typedef ObjectsContainer::const_iterator ObjectsConstIterator;
	typedef std::shared_ptr< GameController::IScene > Ptr;

public:

	virtual void addObject( GameModel::IObject::Ptr _object ) = 0;

public:

	virtual ObjectsContainer& getObjects() = 0;

	virtual ObjectsContainer const& getObjects() const = 0;

	virtual const QImage* getBackground() const = 0;
};

} // namespace GameController

#endif // __GAME_CONTROLLER_ISCENE_HPP__
